#!/bin/env ruby
# encoding: utf-8
require_relative '../spec/spec_helper'
require_relative '../spec/commons/user_auth'
require_relative '../spec/commons/check_pages'
require_relative '../spec/commons/employee_edit'

 

describe 'Performance management page' do
  before {

	}
  context 'when logged in' do
  	it 'then he can work with performance management page' do
  	  goto 'http://pulse.7bits.it/en/login-page'
      sign_in('adm.company2@mail.ru', '123qwe+')        #admin
  	  goto 'http://pulse.7bits.it/en/us/admin/performance'
      checkbox(id: "performance-checkbox", class: "js-enable-management", name: "enableManagement").set
      user_logout()
      sign_in('employee.d@mail.ru', '123qwe+')          #requester
      goto 'http://pulse.7bits.it/en/us/performance/project'
      check_performance_page()
  	end
  end

  #TODO Пользователь может создавать project, milestones, tasks 
  #to create a project
  context 'when logged in' do
    it 'then he can create new project' do
      button(class: "btn btn-default js-add-project-button", text: 'Add new project').click
      label(class: "control-label", for: "project-title", text: 'Title').wait_until_present
      label(class: "control-label", for: "project-description", text: 'Description').should be_present
      text_field(id: "project-title", class: "form-control", name: "title",  placeholder: "Enter title").should be_present
      textarea(id: "project-description", class: "form-control",  name: "description", placeholder: "Enter description").should be_present
      button(class: "btn btn-success js-submit-btn", type: "submit", text: "Submit").should be_present
      button(class: "btn btn-default js-cancel-btn", type: "button", text: 'Cancel').should be_present
      text_field(id: "project-title", class: "form-control", name: "title",  placeholder: "Enter title").clear
      text_field(id: "project-title", class: "form-control", name: "title",  placeholder: "Enter title").set "My new project"
      textarea(id: "project-description", class: "form-control",  name: "description", placeholder: "Enter description").clear
      textarea(id: "project-description", class: "form-control",  name: "description", placeholder: "Enter description").set "my project will help to make our lives better"
      button(class: "btn btn-success js-submit-btn", type: "submit", text: "Submit").click
      tableT = table(class: "table table-striped")
      tableT.wait_until_present
      
      browser.elements.each do |elem|
        STDERR.puts elem.tag_name
      end
      
      find_project=false
      tableT.tbody.trs.each do |row|
        row.cells.each do |cell|
          if cell.text == "My new project" then 
            find_project = true 
            break
          end
        end
      end
      (find_project).should be_truthy

      i=findNameColumn("Project title", tableT)
      rowIndex=0
     # tableT.tbody.trs.each do |ttr|
      #  if ttr[i] == "My new project"  then                  
       #   break
        #end
      #  rowIndex++
      #end
      j=findNameColumn("Project description", tableT)
      (tableT.tbody[rowIndex][j].text == "my project will help to make our lives better").should be_truthy
      k=findNameColumn("Status", tableT)
      (tableT.tbody[rowIndex][k].text == "In progress").should be_truthy
      #m=findNameColumn("", tableT)
      div(class: "btn-xs btn btn-info js-ajax-button js-complete-project", text: 'Mark completed').should be_present
      div(class: "btn-xs btn btn-primary js-expand-milestones", text: 'Milestones').should be_present
      div(class: "btn-xs btn btn-primary js-ajax-button js-delete-project", text: 'Delete').should be_present
    end
  end

#todo  проверить на ввод  плохих параметров при создании  project, milestones, tasks



#TODO Пользователь может отметить как завершенный project, milestones, tasks.
#TODO Пользователь может отметить как завершенный milestone, только если все его tasks завершены (кнопка mark completed появляется после complete последнего task).
#TODO Пользователь может отметить как завершенный project, только если все его milestones завершены. (кнопка mark completed появляется после complete последнего milestone)

#TODO Пользователь может удалять project, milestones, tasks 

#TODO Пользователь НЕ МОЖЕТ создать task, если его milestone отмечен как завершенный.
#TODO Пользователь НЕ МОЖЕТ создать milestone, если его project отмечен как завершенный.
#TODO Пользователь НЕ МОЖЕТ удалить completed task, если менеджер уже оставил на него feedback.
#TODO Пользователь НЕ МОЖЕТ удалить task, если его milestone отмечен как завершенный.

#TODO Пользователь НЕ МОЖЕТ удалить milestone, если его project отмечен как завершенный.

#TODO Пользователь НЕ МОЖЕТ удалить project, если они содержат хотя бы 1 completed task, на который менеджер уже оставил feedback.
#TODO Пользователь НЕ МОЖЕТ удалить milestone, если они содержат хотя бы 1 completed task, на который менеджер уже оставил feedback.

  context 'when logged out' do
    it "then he can't work with performance management page"  do
	  user_logout()
    end
  end

end